﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using Mogre;

namespace ProjetInfoMogre
{
	public abstract class Entite
	{
		
		protected Entity entite;
        private SceneNode noeud;
        protected string name;
        protected static int compteur = 0;
        protected static Random random = new Random();

        //attribut for walk
        protected AnimationState animation = null;
        protected float mDistanceRestante = 0.0f;       // Distance que le robot doit traverser
        protected Vector3 mDirection = Vector3.ZERO;    // Direction de l'entité
        protected Vector3 mDestination = Vector3.ZERO;  // Destination de l'entité
        protected float mWalkSpeed = 200.0f;             // Rapidité de la marche
        protected bool mWalking = false;                // Permet de savoir si l'Entité est en mouvement ou non

		protected Monde monde; 

        protected Entite(SceneManager mSceneMgr, Vector3 Vposition, Monde _monde ) 
        {
            name = "Entite" + compteur;
            compteur++;
			monde = _monde;
        }


     	public abstract void vit(float time);
        public abstract void walk(float time);
		public abstract void detection();

        public Entity Ent
        {
            get { return entite; }
            set { entite = value; }
        }
        public SceneNode Noeud
        {
            get { return noeud; }
            set { noeud = value; }
        }
        public Vector3 Destination
        {
            get { return mDestination; }
            set { mDestination = value; }
        }
        public bool Walking
        {
            get { return mWalking; }
            set { mWalking = value; }
        }
	}
}
